const db = require('../db/connMysql');
const mysql_tool = require('../util/mysql_tool');
const minioClient = require('../db/connMinio');

async function main() {
    // 等待数据库连接成功后执行下方代码
    if (db.conn_successful !== true) {
        setTimeout(main, 100);
        return ;
    }
    await minioClient.initMinIO();

    // 从数据库里读取图片数据
    let sql = `SELECT
            interviewId as id, interviewPhoto
        FROM HomeSchoolInterviewRecords
        WHERE interviewPhoto IS NOT NULL and interviewPhoto != ''`;
    let data = [];
    let res = await mysql_tool.execSql(sql, data);

    for (let i = 0; i < res.length; i++) {
        let item = res[i];
        let photoUrl = item.interviewPhoto;   // …
        console.log(!photoUrl);
        // 将数据转换为 bytes 保存为本地文件
        // 提取 base64 数据部分
        let base64Data = photoUrl.split(',')[1];
        // 将 base64 数据转换为 Buffer
        let buffer = Buffer.from(base64Data, 'base64');
        // 定义 MinIO 的 bucket 名称和对象名称
        let bucketName = 'public'; // 替换为你的 bucket 名称
        let objectName = `HomeSchoolInterviewRecords-${item.id}.png`; // 替换为你希望在 MinIO 中存储的对象名称

        // 上传 Buffer 到 MinIO
        await minioClient.minio.putObject(bucketName, objectName, buffer, buffer.length, function(err, etag) {
            if (err) {
                return console.log(err);
            }
            console.log('File uploaded successfully.' + objectName);
        });

        // 更新数据库中图片数据的 url
        let sql = `INSERT INTO PublicImg(
                browser, uri, status
            ) VALUES (?, ?, ?)`;
        let data = [bucketName, objectName, '已完成'];
        let insertDB = await mysql_tool.execSql(sql, data);
        let insertId = insertDB.insertId;
        sql = `UPDATE HomeSchoolInterviewRecords SET imgId = ? WHERE interviewId = ?`;
        data = [insertId, item.id];
        await mysql_tool.execSql(sql, data);
    }

    console.log(res);
}

main();












































































































































// 用来刷病例档案的
// async function main() {
//     // 等待数据库连接成功后执行下方代码
//     if (db.conn_successful !== true) {
//         setTimeout(main, 100);
//         return ;
//     }
//     await minioClient.initMinIO();

//     // 从数据库里读取图片数据
//     let sql = `SELECT
//             medicalId as id, photoUrl
//         FROM MedicalRecords`;
//     let data = [];
//     let res = await mysql_tool.execSql(sql, data);

//     for (let i = 0; i < res.length; i++) {
//         let item = res[i];
//         let photoUrl = item.photoUrl;   // …
//         // 将数据转换为 bytes 保存为本地文件
//         // 提取 base64 数据部分
//         let base64Data = photoUrl.split(',')[1];
//         // 将 base64 数据转换为 Buffer
//         let buffer = Buffer.from(base64Data, 'base64');
//         // 定义本地文件路径
//         // let localFilePath = `./temp/${item.id}.png`;
//         // // 将 Buffer 写入本地文件
//         // fs.writeFileSync(localFilePath, buffer);
//         // 定义 MinIO 的 bucket 名称和对象名称
//         let bucketName = 'public'; // 替换为你的 bucket 名称
//         let objectName = `MedicalRecords-${item.id}.png`; // 替换为你希望在 MinIO 中存储的对象名称

//         // 上传 Buffer 到 MinIO
//         await minioClient.minio.putObject(bucketName, objectName, buffer, buffer.length, function(err, etag) {
//             if (err) {
//                 return console.log(err);
//             }
//             console.log('File uploaded successfully.' + objectName);
//         });

//         // 更新数据库中图片数据的 url
//         let sql = `INSERT INTO PublicImg(
//                 browser, uri, status
//             ) VALUES (?, ?, ?)`;
//         let data = [bucketName, objectName, '已完成'];
//         let insertDB = await mysql_tool.execSql(sql, data);
//         let insertId = insertDB.insertId;
//         sql = `UPDATE MedicalRecords SET imgId = ? WHERE medicalId = ?`;
//         data = [insertId, item.id];
//         await mysql_tool.execSql(sql, data);
//     }

//     console.log(res);
// }